﻿var checkAll;
var checkpll;
var Show;
var Fenye;
var close;
var idsArray = [];

//文档就绪函数
$(function () {
    generateDate();//自动生成时间
    fantian();//反填
});
//供应商下拉框
layui.use('form', function () {
    var form = layui.form;
    $.ajax({
        url: "/Vonder/GetVendorNameShow",
        type: "get",
        data: { token: localStorage.getItem("token") },
        success: function (data) {
            var data = JSON.parse(data);
            console.log(data.data)
            var options = '<option value="">请选择</option>'; // 添加默认选项
            $.each(data.data, function (index, item) {
                options += '<option value="' + item.vendorNo + '">' + item.vendorName + '</option>';
            });
            $("#vendorNo").html(options);
            form.render('select'); // 重新渲染下拉框
        },
        error: function () {
            console.log("获取数据失败");
            // 可以考虑显示一个错误消息给用户
        }
    });
});

//客户下拉框
layui.use('form', function () {
    var form = layui.form;
    $.ajax({
        url: "/Purchase/GetClientNameShow",
        type: "get",
        data: { token: localStorage.getItem("token") },
        success: function (data) {
            var data = JSON.parse(data);
            console.log(data.data)
            var options = '<option value="">请选择</option>'; // 添加默认选项
            $.each(data.data, function (index, item) {
                options += '<option value="' + item.clientName + '">' + item.clientName + '</option>';
            });
            $("#clientName").html(options);
            form.render('select'); // 重新渲染下拉框
        },
        error: function () {
            console.log("获取数据失败");
            // 可以考虑显示一个错误消息给用户
        }
    });
});

layui.use(function () {
    var $ = layui.$;
    var layer = layui.layer;
    var util = layui.util;
    var form = layui.form;


    // 定义获取选中复选框值的函数
    function getCheckedCheckboxValues() {
        var checkedCheckboxValues = [];
        $("input[name='ckbproc']:checked").each(function () {
            checkedCheckboxValues.push($(this).val());
        });
        return checkedCheckboxValues;
        console.log(checkedCheckboxValues);
    }

    // 事件
    util.on('lay-on', {
        'test-page-custom': function () {
            layer.open({
                type: 1,
                area: ['950px', '600px'],
                resize: false,
                shadeClose: true,
                title: '选择产品',
                content: `
                            <form class="layui-form" action="">
                         <div class="layui-form-item">
                             <div class="layui-inline">
                                 <label class="layui-form-label">产品编号:</label>
                                 <div class="layui-input-block">
                                     <input type="text" id="productNo" name="productNo" placeholder="请输入" autocomplete="off" class="layui-input">
                                 </div>
                             </div>
                             <div class="layui-inline">
                                 <label class="layui-form-label">产品名称:</label>
                                 <div class="layui-input-block">
                                     <input type="text" id="productName" name="productName" placeholder="请输入" autocomplete="off" class="layui-input">
                                 </div>
                             </div>
                             <div class="layui-inline">
                                 <div class="layui-btn-container">
                                     <button type="button" class="layui-btn layui-bg-blue" onclick="Fenye()">
                                         <i class="layui-icon layui-icon-search"></i>搜索
                                     </button>
                                 </div>
                             </div>
                         </div>
                     </form>
                     <div>
                     <table class="layui-table">
                     <tr>
                         <th>
                             <input type="checkbox" id="checkAll" onclick="checkAll()" value="" />
                        </th>
                         <th>产品编号</th>
                         <th>产品名称</th>
                         <th>规格</th>
                         <th>类别</th>
                         <th>存储单位</th>
                         <th>包装类型</th>
                         <th>价格</th>
                         <th>重量</th>
                         <th>显示名</th>
                     </tr>
                     <tbody id="data"></tbody>
                 </table>
                     </div>
                     <div id="demo-laypage-layout"></div>
                     <div style="text-align:right;margin-top:30px">
                     <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" id="closePopupBtn" onclick="close()">
                                         关闭
                                     </button>
                     <button type="button" class="layui-btn layui-bg-blue layui-btn-sm" >
                                         选择
                                     </button>
                     </div>`,
                success: function () {
                    // 对弹层中的表单进行初始化渲染
                    form.render();
                    // 表单提交事件
                    form.on('submit(demo-login)', function (data) {
                        var field = data.field; // 获取表单字段值
                        return false; // 阻止默认 form 跳转
                    });

                    //获取复选框值
                    var chooseButton = $(".layui-btn.layui-bg-blue:last");
                    chooseButton.on('click', function () {
                        var checkedValues = getCheckedCheckboxValues();
                        if (checkedValues.length > 0) {
                            idsArray = checkedValues
                            console.log("选中的复选框值:", checkedValues, idsArray);
                            layer.close(index);
                            //显示
                            layui.use('table', function () {
                                var form = layui.form;
                                var table = layui.table;
                                $.ajax({
                                    url: '../Product/GetProductRangeModel',
                                    type: 'post',
                                    data: {
                                        productId: JSON.stringify(idsArray),
                                        token: localStorage.getItem("token")
                                    },
                                    success: function (res) {
                                        var res = JSON.parse(res)
                                        console.log(res.data)
                                        console.log(idsArray)
                                        // res 是从后端获取到的 JSON 数据
                                        if (res.code === 0) {
                                            console.log(res.data);
                                            table.render({
                                                elem: procurementProduct, // 对应 HTML 中表格的 id
                                                data: res.data, // 绑定获取到的数据
                                                cols: [[
                                                    { type: 'checkbox', fixed: 'left' },
                                                    { field: 'productName', title: '产品名称' },
                                                    { field: 'productNo', title: '产品编码' },
                                                    { field: 'productSpec', title: '规格' },
                                                    { field: 'unitName', title: '单位' },
                                                    {
                                                        field: 'price',
                                                        title: '单价'
                                                    },
                                                    { field: 'buyProductsNum', edit: 'text', title: '数量' },
                                                    {
                                                        field: 'buyProductsTotal', edit: 'text', title: '总价'
                                                    },

                                                    {
                                                        field: '', title: '操作', width: 200, templet: function (d) {
                                                            return '<a class="layui-btn layui-btn-edit layui-btn-xs" lay-on="test-page-delete"><i class="layui-icon layui-icon-edit"></i>删除</a> ';
                                                        }
                                                    }
                                                ]],
                                            })
                                        } else {
                                            console.log(res.msg);
                                        }

                                    },
                                    error: function () {
                                        console.log('获取数据失败');
                                    }
                                });
                            });
                            console.log("选中的复选框值:", checkedValues, idsArray);
                        } else {
                            layer.msg("请至少选择一项");
                        }
                    });
                    //关闭弹窗
                    close = function () {
                        layer.close(index);
                    }

                }
            });
            var index = 1;
            var size = 6;
            var tacount = 0;
            $(function () {
                Fenye();
            });
            //弹窗显示
            Show = function () {
                var productNo = $("#productNo").val();
                var productName = $("#productName").val();
                var manuNo = $("#manuNo").val();
                var vendorId = $("#vendorId").val();
                $.ajax({
                    url: '../Product/GEtProductShow',
                    async: false,//改为异步,
                    type: 'get',
                    data: {
                        productNo: productNo,
                        productName: productName,
                        manuNo: manuNo,
                        vendorId: vendorId,
                        index: index,
                        size, size,
                        token: localStorage.getItem("token")
                    },
                    success: function (res) {
                        var list = '';
                        var parsedData = JSON.parse(res);
                        console.log(parsedData)
                        $(parsedData.data.list).each(function () {
                            list += `
                         <tr>
                        <td>
                                <input type="checkbox" name="ckbproc" value="${this.productId}" />
                            </td>
                         <td>${this.productNo}</td>
                          <td>${this.productName}</td>
                          <td>${this.productSpec}</td>
                          <td>${this.productTypeName}</td>
                          <td>${this.unitName}</td>
                          <td>${this.productWrap}</td>
                          <td>${this.price}</td>
                          <td>${this.productWeight}</td>
                                  <td>
                                     
                                    </td>
                     </tr> `
                        });
                        $("#data").html(list);
                        tacount = parsedData.data.tacount;
                    }
                })
            }

            //分页
            Fenye = function () {

                layui.use(function () {
                    var laypage = layui.laypage;
                    // 完整显示
                    Show()
                    laypage.render({
                        elem: 'demo-laypage-layout', // 元素 id
                        count: tacount, // 数据总数
                        limit: size,//2.设置默认分页大小
                        limits: [6, 10, 15],//3.设置分页组件可选的分页大小
                        layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip'], // 功能布局
                        jump: function (obj) {
                            console.log(obj);
                            index = obj.curr;
                            size = obj.limit;
                            Show();
                        }
                    });
                });
            }

            checkpll = function () {
                var checkedIds = $("input[name='ckbproc']:checked");//取所有选中的name=ckbproc的复选框集合
                var ids = [];//定义了一个数组,空的
                $(checkedIds).each(function (i, obj) {
                    var id = $(obj).val();
                    ids.push(id);//往数组里push数字,数字就是我们的商品id
                });

                console.log(ids)
            }
            checkAll = function () {

                var checked = $("#checkAll").prop("checked");  //取全选/反选 checkbox的选中状态值
                $("input[name='ckbproc']").prop("checked", checked);//把所有name=ckbproc的checkbox的选中状态赋值为 checked
                console.log(checked)
            }
        }
    })
});

//自动生成时间
function generateDate() {
    var n = new Date();
    var ss = n.getFullYear() + (n.getMonth() + 1).toString().padStart(2, '0') +
        n.getDate().toString().padStart(2, '0') +
        n.getHours().toString().padStart(2, '0') +
        n.getMinutes().toString().padStart(2, '0') +
        n.getSeconds().toString().padStart(2, '0');
    $("#procurementNo").val(ss);
    const year = n.getFullYear();
    const month = ("0" + (n.getMonth() + 1)).slice(-2);
    const day = ("0" + n.getDate()).slice(-2);
    const hours = ("0" + n.getHours()).slice(-2);
    const minutes = ("0" + n.getMinutes()).slice(-2);
    const seconds = ("0" + n.getSeconds()).slice(-2);
    $('#singleTime').val(year + "-" + month + "-" + day);// + " " + hours + " " + minutes + " " + seconds
}
//反填
function fantian() {
    return new Promise((resolve, reject) => {
        // 获取要编辑的用户ID
        const procurementId = localStorage.getItem("procurementId");
        console.log(procurementId);
        if (procurementId) {
            // 发送AJAX请求获取数据
            $.ajax({
                type: "get",
                url: "/Purchase/GetFanProcurement",
                data: {
                    procurementId: procurementId,
                    token: localStorage.getItem("token")
                },
                success: (res) => {
                    try {
                        const { data } = JSON.parse(res);
                        console.log(data)
                        if (data) {
                            const { buyProductsData } = data;
                            var procurement = data;
                            console.log(procurement);
                            console.log(buyProductsData);
                            // 反填表单的函数
                            fillForm(procurement);
                           
                            renderTable(buyProductsData);
                            resolve(procurement, buyProductsData);
                        } else {
                            layui.layer.msg(res.message, { icon: 2 });
                            reject(res.message);
                        }
                    } catch (e) {
                        console.error(e);
                        layui.layer.msg('数据解析失败，请稍后重试', { icon: 2 });
                        reject('数据解析失败');
                    }
                },
                error: () => {
                    layui.layer.msg('获取用户信息失败，请稍后重试', { icon: 2 });
                    reject('获取用户信息失败');
                }
            });
        } else {
            reject('未获取到有效的仓库ID');
        }
    });
}
var obj = {
    procurementId: 0,
    procurementState: '',
    isRecorded: '',
    isReturn: '',
    returnsNum: '',
    returnNo: '',
    createName: '',
    createTime: '',
    updateName: '',
    deleteName: '',
    deleteTime: ''
};
// 反填表单的函数
function fillForm(procurement) {
    $('#procurementNo').val(procurement.procurementNo);
    $('#procurementTypeName').val(procurement.procurementTypeName);
    $('#associateNumber').val(procurement.associateNumber);
    $('#vendorNo').val(procurement.vendorNo);
    $('#clientName').val(procurement.clientName);
    $('#procurementPerson').val(procurement.procurementPerson);
    $('#procurementPhone').val(procurement.procurementPhone);
    $('#singleMaker').val(procurement.singleMaker);
    const date = new Date(procurement.singleTime);
    const year = date.getFullYear();
    const month = ("0" + (date.getMonth() + 1)).slice(-2);
    const day = ("0" + date.getDate()).slice(-2);
    $('#singleTime').val(year + "-" + month + "-" + day);
    const dates = new Date(procurement.harvestay);
    const years = date.getFullYear();
    const months = ("0" + (date.getMonth() + 1)).slice(-2);
    const days = ("0" + date.getDate()).slice(-2);
    $('#harvestay').val(years + "-" + months + "-" + days);
    $('#procurementRemark').val(procurement.procurementRemark);

    obj.procurementId = procurement.procurementId
    obj.procurementState = procurement.procurementState
    obj.isRecorded = procurement.isRecorded
    obj.isReturn = procurement.isReturn
    obj.returnsNum = procurement.returnsNum
    obj.returnNo = procurement.returnNo
    obj.createName = procurement.createName
    obj.createTime = procurement.createTime
    obj.updateName = procurement.updateName
    obj.deleteName = procurement.deleteName
    obj.deleteTime = procurement.deleteTime
    console.log(obj)
    // 重新渲染表单元素（如果有）
    //form.render();
}
// 渲染表格的函数
function renderTable(buyProductsData) {
    console.log(buyProductsData);
    var buyProductsId = buyProductsData.buyProductsId
    // 渲染表格的函数
    layui.use('table', function () {
        var table = layui.table;
        if (buyProductsData) {
            var inst = table.render({
                elem: '#procurementProduct', // 对应HTML中表格的id
                data: buyProductsData, // 绑定获取的数据
                cols: [[
                    { type: 'checkbox', fixed: 'left' },
                    { field: 'productName', title: '产品名称' },
                    { field: 'productNo', title: '产品编码' },
                    { field: 'productSpec', title: '规格' },
                    { field: 'unitName', title: '单位' },
                    { field: 'price', title: '单价' },
                    { field: 'buyProductsNum', title: '数量', edit: 'text' },
                    { field: 'buyProductsTotal', title: '总额' },
                    {
                        field: '', title: '操作', templet: function (d) {
                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" onclick="deleteData(' + d.buyProductsId + ')"><i class="layui-icon layui-icon-delete"></i>删除</a>';
                        }
                    }
                ]],
            });
        }
    });
}
//修改入库
var obj1 = {
    procurementId: 0,
    procurementNo: '',
    procurementTypeName: '',
    associateNumber: '',
    vendorNo: '',
    clientName: '',
    procurementPerson: '',
    procurementPhone: '',
    harvestay: '',
    procurementRemark: '',
    singleMaker: '',
    singleTime: '',
    procurementState: '',
    isRecorded: '',
    isReturn: '',
    returnNo: '',
    createName: '',
    createTime: '',
    updateName: '',
    deleteName: '',
    deleteTime: '',
    buyProducts: []
};

// 表单提交事件
layui.use(['layer', 'form', 'util', 'table'], function () {
    var layer = layui.layer;
    var $ = layui.jquery;
    var form = layui.form;
    var util = layui.util;
    var table = layui.table;

    form.on('submit(demo2)', function (data) {
        var field = data.field;
        var checkStatus = table.checkStatus('procurementProduct');
        field.buyProducts = checkStatus.data.map(function (item) {
            return item;
        });
        console.log(field);

        obj1.procurementId = obj.procurementId;
        obj1.procurementNo = field.procurementNo;
        obj1.procurementTypeName = field.procurementTypeName;
        obj1.associateNumber = field.associateNumber;
        obj1.vendorNo = field.vendorNo;
        obj1.clientName = field.clientName;
        obj1.procurementPerson = field.procurementPerson;
        obj1.procurementPhone = field.procurementPhone;
        obj1.harvestay = field.harvestay;
        obj1.procurementRemark = field.procurementRemark;
        obj1.singleMaker = field.singleMaker;
        obj1.singleTime = field.singleTime;
        //obj1.procurementState = field.procurementState;
        //obj1.isRecorded = obj.isRecorded;
        //obj1.isReturn = obj.isReturn;
        //obj1.returnNo = obj.returnNo;
        obj1.createName = obj.createName
        obj1.createTime = obj.createTime
        obj1.updateName = obj.updateName
        obj1.deleteName = obj.deleteName
        obj1.deleteTime = obj.deleteTime
        obj1.buyProducts = field.buyProducts;
        console.log(field.buyProducts)
        console.log(obj1)

        //显示填写结果，仅作演示用
        $.ajax({
            url: '/Purchase/GetUpdateProcurements',
            type: 'post',
            data: {
                field: obj1,
                token: localStorage.getItem("token"),
            },
            success: function (res) {
                var res = JSON.parse(res)
                console.log(field);
                console.log(res);
                if (res.code == 0) {
                    layer.alert("修改成功");
                    //跳转页面
                    setTimeout(function () {
                        location.href = '/Purchase/ProcurementShow'
                    }, 2000);
                } else {
                    layer.alert("修改失败");
                }
            }
        });

        return false; // 阻止默认 form 跳转
    });
});

// 定义时间格式转换函数
function formatTime(timeStamp) {
    if (timeStamp) {
        var date = new Date(timeStamp);
        var year = date.getFullYear();
        var month = ('0' + (date.getMonth() + 1)).slice(-2);
        var day = ('0' + date.getDate()).slice(-2);
        var hour = ('0' + date.getHours()).slice(-2);
        var minute = ('0' + date.getMinutes()).slice(-2);
        var second = ('0' + date.getSeconds()).slice(-2);
        return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
    }
    return "";
}